﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "自定义验证控件使用示例";
        txtUsername.Focus();

    }
    protected void valxUsername_ServerValidate(object source, ServerValidateEventArgs args)
    {
        string strName = txtUsername.Text.Trim();
        int n = strName.Length;		//得到用户输入用户名的长度（字符数）
        args.IsValid = true;		    //将控件置于验证通过状态
        if (txtUsername.Text == "")	//若用户没有输入用户名
        {
            valxUsername.Text = "用户名不能为空！";	//自定义验证控件中显示出错信息
            args.IsValid = false;			//将控件置于验证未通过状态
            return;						//退出事件过程，不再执行后续代码
        }
        for (int i = 0; i < n; i++)	//通过循环逐一测试用户名中每个字符的ASCII值
        {
            string midstr = strName.Substring(i, 1);
            char str = Convert.ToChar(midstr);
            if ((int)str > 255)		//若字符的ASCII值大于255表示包含有非ASCII字符
            {
                valxUsername.Text = "用户名中不能包含汉字！";
                args.IsValid = false;
                break;
            }
        }

    }
    protected void valxPassword_ServerValidate(object source, ServerValidateEventArgs args)
    {
        string strPassword = txtPassword.Text.Trim();
        args.IsValid = true;
        //若用户输入的密码长度小于6个字符或大于12个字符
        if (strPassword.Length < 6 || strPassword.Length > 12)
        {
            valxPassword.Text = "密码长度必须在6～12之间";
            args.IsValid = false;
        }


    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)		//若Page.IsValid属性为true，表示页面中所有验证控件均通过了验证
        {
            lblMsg.Text = "<b>用户输入数据通过验证！</b>";
        }
        else
        {
            lblMsg.Text = "<b>用户输入数据未通过验证！</b>";
        }

    }
}
